package com.changan.controller;

import com.changan.entity.User;
import com.changan.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

//tags是对该类的一个描述
@Api(tags = "用户管理")
@RestController
public class UserController {

    @Autowired
    private UserService userService;

    //restful风格的请求
    /*@GetMapping()
    @PostMapping()
    @PutMapping()
    @DeleteMapping()*/
    @GetMapping("/getUsers")
    //@ApiOperation() 是对该接口方法的描述
    @ApiOperation(value = "获取用户信息",notes = "方法的参数描述 接口作用等等")
    public List<User> getUsers(){
        return userService.getUsers();
    }

    @PostMapping("/addUser")
    //@ApiOperation() 是对该接口方法的描述
    @ApiOperation(value = "添加用户信息",notes = "方法的参数描述 接口作用等等")
    public int addUser(User user){
        return userService.addUser(user);
    }

    @GetMapping("/getById")
    //@ApiOperation() 是对该接口方法的描述
    @ApiOperation(value = "获取单个用户信息",notes = "方法的参数描述 接口作用等等")
    public User getById(Long id){
        return userService.getUserById(id);
    }

    @PutMapping("/updateUser")
    //@ApiOperation() 是对该接口方法的描述
    @ApiOperation(value = "修改用户信息",notes = "方法的参数描述 接口作用等等")
    public int updateUser(User user){
        return userService.updateUser(user);
    }

    @DeleteMapping("/deleteUser")
    //@ApiOperation() 是对该接口方法的描述
    @ApiOperation(value = "删除单个用户信息",notes = "方法的参数描述 接口作用等等")
    public int deleteUser(Long id){
        return userService.deleteUser(id);
    }
}
